Repository navigation
fix(songbook): Fix the songbook's order, chords, repeats and front matter - #464
Conversation
…tter Slash chords now reach Leadsheets as written: it prints `D/F#` natively, and the old `/` to `-` rewrite made them look like the source's chord pairs such as `A4-A`. Songs sort field by field in Romanian order. Joining the fields with no separator put "Biruitor in pustiu" before "Biruitor". Romanian is the `polyglossia` language, which gives a Romanian `\today` and hyphenation; the Leadsheets labels therefore move from `English` to `Romanian` translations, or they fall back to "Chorus" and "composer". Chords use MonoLisa only where it is installed. It is a licensed font that CI lacks, so CI falls back to a bold sans serif; XeTeX reaches only the Regular instance of the variable font, so bold is synthesized.
|
@claude review |
|
Claude finished @ioanlucut's task in 2m 20s —— View job Review
I read the diff ( Findings: none blocking. Everything I checked lines up with the stated intent:
Minor, non-blocking observations (no action needed):
I wasn't able to execute |
The installed MonoLisa already covers every Romanian letter, so the webfont download is not needed. Like the chords, the lyrics fall back when the font is missing, so CI keeps Latin Modern.
|
Since the last review: the lyrics now also use MonoLisa Text when it is installed, with the same @claude review |
|
Claude finished @ioanlucut's task in 46s —— View job Review
Since my previous review, the only change is commit Findings: none blocking.
I wasn't able to execute |
What changes
The songbook PDF had a duplicated table of contents, English dates, hard-coded
2025, songs sorted out of order, slash chords printed asD-F♯, and 197 of 291 songs showing a raw/: … :/instead of repeat bars. This fixes those, makes chords readable (bold, left-aligned over the syllable), and sets lyrics and chords in MonoLisa where it is installed.lyric word → getNormalizedContent escapeTexAroundChords # now also escapes `|` → \textbar{} (bar shortcuts make it active) - rewriteNotationsWithDashForChordsWithBass ^{D/F#} → ^{D-F#}, same look as the pair ^{A4-A} + rewriteRepeatMarkAsRepeatBar /: … :/ → |: … :| song order - (title + alternative + composer + …).localeCompare() "Biruitor in pustiu" < "Biruitor" + compareSongbookOrder: field by field, 'ro' collation Biruitor < Biruitor in pustiu, Astăzi < Aș vrea bes-songbook.template.txt - "Cuprins" + "Conținut" heading + "Conținut … 2" entry + one "Cuprins" - datetime → "Tuesday 29th September, 2026", © 2025 + polyglossia romanian → "29 septembrie 2026", © \the\year, Romanian hyphenation + align-chords = l, chords/format = \chordfont\bfseries + MonoLisa Text (lyrics) and MonoLisa Code (chords) if installed, else Latin Modern + bold sansDecisions and risks
\IfFontExistsTF: the published CI PDF keeps Latin Modern lyrics and bold Latin Modern Sans chords. XeTeX only reaches MonoLisa's Regular instance, so its bold is synthesized (AutoFakeBold). The installed MonoLisa covers every Romanian letter (ă â î ș ț, capitals and cedilla forms).Romaniantranslations, sobes-songbook-config.texnow declares its labels there; otherwise they fall back to "Chorus" and "composer".^*{…}) take no width in Leadsheets, so a short syllable can still let two chords touch (e.g.D/F♯E⁴-E). This happened before too.Validation
npm run lint,npm run typecheckandnpm testpass (271 tests).npm run songbook:convertandnpm run songbook:compilebuild all 291 songs with no LaTeX errors, no missing glyphs and no new warnings; with MonoLisa the book shrinks from 390 to 337 pages and split chorus frames drop from 7 to 3. I checked the PDF for the singleCuprins, the Romanian date, the sort order, slash chords, repeat bars and Romanian labels. A build without MonoLisa, as on CI, also compiles and falls back to bold sans.🤖 Generated with Claude Code